package com.hzgj.bcl.soa.registry;

import com.hzgj.bcl.soa.config.ServerDef;
import com.hzgj.bcl.soa.config.ServiceDef;

import java.util.List;

/**
 * Created by dell on 2015/3/25.
 */
public interface NotifyListener {

    /**
     * 针对单个服务的通知机制,基于拉去服务的方式
     *
     * @param servers 单个服务对应的server，包含多个服务提供者
     */
    void notifyWithSingleService(List<ServerDef> servers);

    /**
     * 基于推送的方式通知客户端服务端的变化
     *
     * @param serviceAttr 单个服务属性
     */
    void notifyClient(ServiceDef.Attr serviceAttr, PushAction pushAction);

    enum PushAction {
        set, expire, delete
    }
}
